package com.aisile.article.service.impl;

import com.aisile.article.mapper.ApArticleMapper;
import com.aisile.article.service.ApArticleService;
import com.aisile.common.exception.CustomExceptionCatch;
import com.aisile.model.article.dtos.ArticleHomeDto;
import com.aisile.model.article.pojos.ApArticle;
import com.aisile.model.common.dtos.ResponseResult;
import com.aisile.model.common.enums.AppHttpCodeEnum;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import java.util.Date;
import java.util.List;

/**
 * @Auther:yry
 * @Date:2024/1/10 0010
 * @VERSON:1.0
 */
@Service
@SuppressWarnings("ALL")
public class ApArticleServiceImpl extends ServiceImpl<ApArticleMapper, ApArticle> implements ApArticleService {

    @Autowired
    private ApArticleMapper apArticleMapper;

    @Override
    public ResponseResult load(ArticleHomeDto dto, Short loadType) {
        // 判断错  不判断对！（减少代码的嵌套）
        if(dto == null){
            CustomExceptionCatch.catchApp(AppHttpCodeEnum.DATA_NOT_EXIST);
        }
        // 判断参数
        if(loadType != 1 && loadType!=2){
            CustomExceptionCatch.catchApp(AppHttpCodeEnum.DATA_NOT_EXIST);
        }
        // 初始化分页
        Integer size =  dto.getSize();
        if(size == null || size == 0){
            dto.setSize(10);
        }
        //tag   频道id  // 如果没有  默认走一个标识 我就知道查询全部
        if(dto.getTag() == null || "".equals(dto.getTag().trim())){
           dto.setTag("__all__");
        }
        // 当进入首页 时间没有  初始化为当前时间
        if(dto.getMaxBehotTime() == null){
            dto.setMaxBehotTime(new Date());
        }
        if(dto.getMinBehotTime() == null){
            dto.setMinBehotTime(new Date());
        }
        // 执行查询 （链接查询  xml方式）
        List<ApArticle> list = this.baseMapper.loadArticleList(dto,loadType);

        return ResponseResult.okResult(list);
    }
}
